In microprocessor based systems such as personal computers and the like the video hardware for controlling a video display (monitor) comprises a video adaptor which interfaces the video commands issued by the CPU to the monitor. One of the most popular video adaptors used in personal computers is the video graphics array (VGA) manufactured by International Business Machines, Armonk, N.Y. The VGA has gained such wide popularity and use that several manufacturers provide hardware that emulates the VGA and numerous software producers have developed software that utilize the VGA to produce the video output.
A block diagram of the VGA is shown in FIG. 1. The VGA comprises the VGA chip or controller 20, memory 10 which functions as the frame buffer and the storage of fonts and the like and the digital to analog converter (DAC) 30 referred to sometimes as the pallate chip which functions as the color lookup table for the color display as well as the driver for the monitor 40. VGA chip 20 is connected to the CPU through the PC bus. The CPU transmits to the VGA chip which receives the video commands regarding what information to display and not to display. To generate a display the CPU instructs the VGA chip 20 to display a certain set of data. Upon receipt of commands from the CPU, the VGA sends the required instructions--if it is in the text mode the 16-bits containing character attributes, if it is in the graphics mode the pixel information--to the memory 10 to generate the frame buffer image. The frame buffer image is then transmitted back to the VGA chip which forwards one pixel at a time the contents of the frame buffer to the DAC 30. The 4-bit pixel code (4 bits for 16 colors, 8 bits for 256 colors) transmitted to the DAC 30 is used to determine the color of the pixel through the color lookup table. Once the color of the pixel is determined through the lookup table, the digital signals are converted to analog signals and output to the monitor 40 for display. The contents of the frame buffer are read and transferred to the DAC 30 sixty (60) times a second in order to refresh the display on the monitor display 40. Due to the extreme popularity of the VGA, computer manufacturers have attempted to design video hardware and software that are backwards compatible with the VGA, such that popular software programs that are compatible only with the VGA will work on the more recent versions of computers.
However, a new feature found in the many of the newer multitasking computers, referred to as windowing, has made the problem of compatibility with the VGA even more difficult. Software programs which provide this feature include "Microsoft Windows", developed by Microsoft Corporation, Redmond, Wash. and "Presentation Manager", developed by International Business Machines, Armonk, N.Y. In a windowing environment, the screen may be divided up into a plurality of areas, each referred to as a window, in which different processes may be run simultaneously. For example, in a first window an accounting program may be operating while in a second window a drawing program may be running. The user of the computer has the ability to switch from window to window to operate the separate processes. The graphics portion of windowing system which contains the display is typically a separate program which receives as input the parameters designating the different windows on the screen and the applications that are to operate in each of the windows, such that when the application program indicates the display is to change that information is sent to the windowing system which takes the video information and massages the data, i.e., compresses the size of the data as well as clips and trims the data in view of the window and its relations to other windows displayed, and outputs the massaged data to the frame buffer of the monitor for display. Computer hardware developers have found however, that the VGA will not work in the window environment and have been unable to take a VGA generated display and allocate it to a portion of the screen. If a VGA-based process, that is a process which utilizes the VGA to generate its video output, is to be executed, the applications running under the windowing system must be suspended and saved and the screen blanked so that the VGA process can display its video image.
To overcome this problem there have been attempts to develop VGA emulation software that is compatible with the windowing system so that VGA-based processes are displayable within the windowing system. However, software emulators require a large amount of CPU overhead and dramatically slow down the time required to generate a display. Tests have shown that to generate a video image through a software emulator may to be up to 83 times slower than the time typically required to generate the same image in a non-windowing environment. The method and apparatus of the present invention seeks to overcome these problems by providing an interface between the VGA and a non-VGA compatible environment such as the windowing environment and system software such that VGA based applications may be displayed in the incompatible environment on a real time basis.
Furthermore, it has been found that the method and apparatus of the present invention may be utilized to perform real time comparisons of large blocks of raster data, such as seismic and geological data, radar data and video imaging data, data such as the data employed in image processing. Currently in such applications when two blocks of data are to be compared, the comparisons are performed by software which compares the blocks of data on a bit by bit basis. This is quite time consuming and makes real time processing of the data difficult except on large, powerful, main frame computers. The method and apparatus of the present invention provides a real time capability for the comparison and detection of changes in raster data without utilizing powerful main frame computers.